package com.qing.thread.yield;

/**
 * 线程礼让不一定成功
 * 是让当前线程暂停，但不堵塞，从运行状态重新进入就绪状态，之后CPU再进行调度
 * 礼让成功输出：
 * A线程开始---
 * B线程开始---
 * A线程结束
 * B线程结束
 * <p>
 * 礼让不成功输出：
 * A线程开始---
 * A线程结束
 * B线程开始---
 * B线程结束
 */

public class YieldThread {
    public static void main(String[] args) {
        MyYieldThread myYieldThread = new MyYieldThread();

        new Thread(myYieldThread, "A").start();
        new Thread(myYieldThread, "B").start();
    }
}

class MyYieldThread implements Runnable {

    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName() + "线程开始---");
        //线程开始礼让
        Thread.yield();
        System.out.println(Thread.currentThread().getName() + "线程结束");
    }
}